import {
  TIM,
  COS,
  tim
} from '../../message/message.js';
const app = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    noMessageList: true,
    conversationList: []
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let self = this;
    let userP = new Promise((resolve, reject) => {
      wx.getStorage({
        key: 'username',
        success: res => {
          resolve(res.data)
        },
        fail: () => {
          reject(Error('未登录'))
        }
      })
    })
    userP
      .then((username) => {
        return new Promise((resolve, reject) => {
          wx.getStorage({
            key: 'key',
            success: res => {
              let user = {
                username: username,
                key: res.data
              }
              resolve(user)
            },
            fail: () => {
              reject(Error('未登录'))
            }
          })
        })
      })
      .catch(error => {
        console.error(error)
        wx.navigateTo({
          url: '../chooselogin/chooselogin'
        })
      })
      .then((user) => {
        return new Promise((resolve, reject) => {
          wx.request({
            url: `${app.globalData.ApiUrl}/index.php?act=member_index&op=kefu&key=${user.key}`,
            method: 'GET',
            success: res => {
              if (res.data.code == 200) {
                self.setData({
                  user_avatar: res.data.datas.avatar
                })
                user.userSig = res.data.datas.user_sign
                resolve(user)
              } else {
                wx.showToast({
                  title: '该功能完善中',
                  icon: 'none'
                })
                setTimeout(() => {
                  wx.switchTab({
                    url: '../index/index'
                  })
                }, 1500);
                reject(Error(res.data.error))
              }
            }
          })
        })
      })
      .then((user) => {
        return tim.login({
          userID: user.username,
          userSig: user.userSig
        });
      })
      .then(imResponse => {
        console.log(imResponse.data)
      })
      .catch(imError => {
        console.warn('login error:', imError);
      })

    tim.on(TIM.EVENT.SDK_READY, this.getConversation);

    tim.on(TIM.EVENT.CONVERSATION_LIST_UPDATED, function (event) {
      // 收到会话列表更新通知，可通过遍历 event.data 获取会话列表数据并渲染到页面
      // event.name - TIM.EVENT.CONVERSATION_LIST_UPDATED
      // event.data - 存储 Conversation 对象的数组 - [Conversation]
      self.setData({
        conversationList: event.data
      })
    });
  },
  getConversation: function () {
    let self = this;
    // 收到离线消息和会话列表同步完毕通知，接入侧可以调用 sendMessage 等需要鉴权的接口
    // event.name - TIM.EVENT.SDK_READY
    // 拉取会话列表
    let promiseConversation = tim.getConversationList();
    promiseConversation.then(function (imResponse) {
      const conversationList = imResponse.data.conversationList; // 会话列表，用该列表覆盖原有的会话列表
      if (conversationList.length == 0) {
        self.setData({
          noMessageList: false
        })
      } else {
        self.setData({
          conversationList,
        })
      }
    }).catch(function (imError) {
      console.warn('getConversationList error:', imError); // 获取会话列表失败的相关信息
    });
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    if (this.data.conversationList.length != 0) {
      this.setData({
        noMessageList: true
      })
    }
    this.setData({
      conversationList: this.data.conversationList
    })
  },
  delConversation: function () {
    let promise = tim.deleteConversation('C2Cuser0');
    promise.then(function (imResponse) {
      //删除成功。
      const {
        conversationID
      } = imResponse.data; // 被删除的会话 ID
    }).catch(function (imError) {
      console.warn('deleteConversation error:', imError); // 删除会话失败的相关信息
    });
  },
  /**
   * 生命周期函数--监听页面隐藏
   */
  toCustomerServer: function () {
    let promise = tim.logout();
    promise.then(function (imResponse) {
      console.log(imResponse.data); // 登出成功
    }).catch(function (imError) {
      console.warn('logout error:', imError);
    });
    wx.navigateTo({
      url: '../message_detail/message_detail'
    })
  },
  onHide: function () {
    // let promise = tim.logout();
    // promise.then(function (imResponse) {
    //   console.log(imResponse.data); // 登出成功
    // }).catch(function (imError) {
    //   console.warn('logout error:', imError);
    // });
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    let promise = tim.logout();
    promise.then(function (imResponse) {
      console.log(imResponse.data); // 登出成功
    }).catch(function (imError) {
      console.warn('logout error:', imError);
    });
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})